@{   
    
    //Layout = "~/Views/Shared/_Layout.cshtml";  
    Layout = "~/Views/Shared/_LayoutJtable.cshtml";      
}

@{ViewBag.Title = "Gestione Datos";}

<div class="filtering"><form>
<label>Indroduzca texto para filtrar: <input type="text" name="filter" id="filter" /></label>
<button type="submit" id="LoadRecordsButton" class="button medium green">Filtrar Datos</button>    
<button type="button" id="ReportePorRol" class="button medium yellow" >Ver en PDF</button>
<button type="button" id="bloquearRol" class="button medium red" >Bloquear Usuarios</button>
<button type="button" id="desbloquearRol" class="button medium green" >Desbloquear Usuarios</button>
</form></div>
<div id="MyTableContainer"></div>
<script type="text/javascript">
     $(document).ready(function () {
     $('#MyTableContainer').jtable({
         title: 'DUA_Rol',
         paging: true,
         pageSize: 20,
         sorting: true,
         selecting: true,
         multiselect: true,
         selectingCheckboxes: true,
         defaultSorting: 'Id ASC',
         actions: {
             listAction: '@Url.Action("JSONPagedListByFilter")',
             deleteAction: '@Url.Action("JSONDelete")',
             updateAction: '@Url.Action("JSONUpdate")',
             createAction: '@Url.Action("JSONCreate")'
         },
         fields:
         {
          Id: {
                 key: true,
                 create: false,
                 edit: false,
                 list: false
             }
             ,
             Nombre: {
                 title:'Nombre',
                 create: true,
                 edit: true,
                 list: true,
                 inputClass: 'validate[required]',
                 sorting: false
             }
             ,
             Descripcion: {
                 title:'Descripcion',
                 create: true,
                 edit: true,
                 list: true,
                 inputClass: 'validate[required]',
                 sorting: false
             }
             ,
             Guid: {
                 type: 'hidden'
             }
             ,
             UrlImagen: {
                 title:'UrlImagen',
                 create: true,
                 edit: true,
                 list: true,
                 sorting: false
             }
             ,
             ObtenerImagenDeBD: {
                 title:'ObtenerImagenDeBD',
                 create: true,
                 edit: true,
                 list: true,
                 type: 'checkbox',
                 values:{'false':'Desactivado','true':'Activado'},
                 sorting: false
             },


             Accesos: {
                 title: 'Accesos',
                 width: '1%',
                 sorting: false,
                 edit: false,
                 create: false,
                 listClass: 'child-opener-image-column',
                 display: function (studentData) {
                     var $img = $('<img class="child-opener-image" with="15" height="15" src="../../Content/images/services.png" title="Revisar Accesos" />');
                     //Open child table when user clicks the image
                     $img.click(function () {
                         $('#MyTableContainer').jtable('openChildTable',
                                    $img.closest('tr'),
                                    {
                                        title: 'Accesos de : ' + studentData.record.Nombre,
                                        actions: {
                                            listAction: '@Url.Action("../../RolAcceso/AccesosByRol")?RolId=' + studentData.record.Id,
                                            deleteAction: '@Url.Action("../../RolAcceso/JSONDelete")',
                                            updateAction: '@Url.Action("../../RolAcceso/JSONUpdate")',
                                            createAction: '@Url.Action("../../RolAcceso/JSONCreate")'
                                        },
                                        fields: {
                                            RolId_FK: {
                                                type: 'hidden',
                                                defaultValue: studentData.record.Id
                                            }
                                            ,

                                            Id: {
                                                key: true,
                                                create: false,
                                                edit: false,
                                                list: false
                                            }
                                             ,
                                            FechaCreacion: {
                                                title: 'FechaCreacion',
                                                create: true,
                                                edit: true,
                                                list: false,
                                                type: 'date',
                                                displayFormat: 'dd/mm/yy',
                                                inputClass: 'validate[required]',
                                                sorting: false
                                            }
                                             ,
                                            FechaCaducidad: {
                                                title: 'FechaCaducidad',
                                                create: true,
                                                edit: true,
                                                list: true,
                                                type: 'date',
                                                displayFormat: 'dd/mm/yy',
                                                sorting: false
                                            }
                                             ,
                                            Params: {
                                                title: 'Params',
                                                create: true,
                                                edit: true,
                                                list: true,
                                                type: 'textarea',
                                                sorting: false
                                            }
                                             ,
                                            Escritura: {
                                                title: 'Escritura',
                                                create: true,
                                                edit: true,
                                                list: true,
                                                type: 'checkbox',
                                                values: { 'false': 'Desactivado', 'true': 'Activado' },
                                                sorting: false
                                            }
                                             ,
                                            Lectura: {
                                                title: 'Lectura',
                                                create: true,
                                                edit: true,
                                                list: true,
                                                type: 'checkbox',
                                                values: { 'false': 'Desactivado', 'true': 'Activado' },
                                                sorting: false
                                            }
                                            ,
                                            MostrarEnMenuRapido: {
                                                title: 'Mostrar En Menu Rapido',
                                                create: true,
                                                edit: true,
                                                list: true,
                                                type: 'checkbox',
                                                values: { 'false': 'Desactivado', 'true': 'Activado' },
                                                sorting: false
                                            }
                                            ,
                                            AccesoId_FK: {
                                                title: 'Acceso',
                                                create: true,
                                                edit: true,
                                                list: true,
                                                options: '@Url.Action("../AccesoLite/JSONGetElementsForDropDownList")'
                                            }


                                        }
                                    }, function (data) { //opened handler
                                        data.childTable.jtable('load');
                                    });
                     });
                     //Return image to show on the person row
                     return $img;
                 }
             },

             Usuarios: {
                 title: 'Usuarios',
                 width: '1%',
                 sorting: false,
                 edit: false,
                 create: false,
                 listClass: 'child-opener-image-column',
                 display: function (rolData) {
                     var $img = $('<img class="child-opener-image" with="15" height="15" src="../../Content/images/user.png" title="Revisar Usuarios" />');
                     //Open child table when user clicks the image
                     $img.click(function () {
                         $('#MyTableContainer').jtable('openChildTable',
                                    $img.closest('tr'),
                                    {
                                        title: 'Usuarios de : ' + rolData.record.Nombre,
                                        actions: {
                                            listAction: '@Url.Action("../Usuario/UsuariosByRol")?RolId=' + rolData.record.Id,
                                            deleteAction: '@Url.Action("../Usuario/JSONDelete")',
                                            updateAction: '@Url.Action("../Usuario/JSONUpdate")',
                                            createAction: '@Url.Action("../Usuario/JSONCreate")'
                                        },
                                        fields: {
                                            RolId_FK: {
                                                type: 'hidden',
                                                defaultValue: rolData.record.Id
                                            },

                                            Id: {
                                                key: true,
                                                create: false,
                                                edit: false,
                                                list: false
                                            }
                                            ,
                                            Nombre: {
                                                title: 'Nombre',
                                                create: true,
                                                edit: true,
                                                list: true,
                                                inputClass: 'validate[required]',
                                                sorting: false
                                            }
                                            ,
                                            Contrasena: {
                                                title: 'Contrasena',
                                                create: true,
                                                edit: true,
                                                list: true,
                                                inputClass: 'validate[required]',
                                                sorting: false
                                            }
                                            ,
                                            PreguntaSeguridad: {
                                                title: 'PreguntaSeguridad',
                                                create: true,
                                                edit: true,
                                                list: true,
                                                inputClass: 'validate[required]',
                                                sorting: false
                                            }
                                            ,
                                            RespuestaSeguridad: {
                                                title: 'RespuestaSeguridad',
                                                create: true,
                                                edit: true,
                                                list: true,
                                                inputClass: 'validate[required]',
                                                sorting: false
                                            }
                                            ,
                                            UltimoAcceso: {
                                                title: 'UltimoAcceso',
                                                create: false,
                                                edit: false,
                                                list: true,
                                                type: 'date',
                                                displayFormat: 'dd/mm/yy',
                                                sorting: false
                                            }
                                            ,
                                            Bloqueado: {
                                                title: 'Bloqueado',
                                                create: true,
                                                edit: true,
                                                list: true,
                                                type: 'checkbox',
                                                values: { 'false': 'Este usuario puede acceder', 'true': 'Este usuario no puede iniciar sesion' },
                                                sorting: false
                                            }
                                            ,
                                            PersonaId_FK: {
                                                title: 'Persona',
                                                create: true,
                                                edit: true,
                                                list: true,
                                                options: '../../Persona/JSONGetElementsForDropDownList'
                                            }



                                        }
                                    }, function (data) { //opened handler
                                        data.childTable.jtable('load');
                                    });
                     });
                     //Return image to show on the person row
                     return $img;
                 }
             }  

},
formCreated: function (event, data) {data.form.validationEngine();},
formSubmitting: function (event, data) {return data.form.validationEngine('validate');},
formClosed: function (event, data) { data.form.validationEngine('hide'); data.form.validationEngine('detach'); }
});
$('#LoadRecordsButton').click(function (e) {e.preventDefault();$('#MyTableContainer').jtable('load', {filter: $('#filter').val()});});
$('#LoadRecordsButton').click();


$('#ReportePorRol').click(function (e) {
    $(this).attr('target', '_blank');
    var $selectedRows = $('#MyTableContainer').jtable('selectedRows');
    var ids = '';

    if ($selectedRows.length > 0) {
        //Show selected rows
        $selectedRows.each(function () {
            var record = $(this).data('record');
            ids = record.Id + ',' + ids;
        });

        window.open('../../Reporte/RolUsuario?rolIds=' + ids, '_blank');
        //window.location = '../Reporte/RequerimientoPorArma?armaIds=' + ids
    }
    else
        window.open('../../Reporte/RolUsuario', '_blank');
});

$('#bloquearRol').click(function (e) {
    $(this).attr('target', '_blank');
    var $selectedRows = $('#MyTableContainer').jtable('selectedRows');
    var ids = '';

    if ($selectedRows.length > 0) {
        //Show selected rows
        
        $selectedRows.each(function () {
            
            var record = $(this).data('record');
            if (record.Id > 1) {

                var entity = { rolId: record.Id }
                var json = JSON.stringify(entity);
                $.ajax({
                    url: 'JSONLockAllUsersOfRole',
                    contentType: 'application/json',
                    type: 'POST',
                    dataType: 'json',
                    data: json
                })
               .success(function (result) {
                   if (result.Result == 'ERROR')
                       alert(result.Message);
                   else {
                       alert('Usuarios Bloqueados del rol ' + record.Nombre + ', revise el reporte');
                   }
               })
               .error(function (xhr, status) {
                   alert('Service is not avalable!!!')
               });
            }
        });
    }
    
});


$('#desbloquearRol').click(function (e) {
 
    var $selectedRows = $('#MyTableContainer').jtable('selectedRows');
    if ($selectedRows.length > 0) {
        //Show selected rows

        $selectedRows.each(function () {

            var record = $(this).data('record');
            if (record.Id > 1) { 
                                
                var entity = { rolId: record.Id }
                var json = JSON.stringify(entity);
                $.ajax({
                    url: 'JSONUnlockAllUsersOfRole',
                    contentType: 'application/json',
                    type: 'POST',
                    dataType: 'json',
                    data: json
                })
               .success(function (result) {
                   if (result.Result == 'ERROR')
                       alert(result.Message);
                   else {
                       alert('Usuarios Desbloqueados del rol ' + record.Nombre + ', revise el reporte');
                   }
               })
               .error(function (xhr, status) {
                   alert('Service is not avalable!!!')
               });
            }



        });
    }

});



});
</script>

